home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turnbull China Bikeride
/
Turnbull China Bikeride - Disc 1.iso
/
ARGONET
/
PD
/
PROGRAMMING
/
Strong_BS175.ZIP
/
!StrongBS
/
Documents
/
Changes
next >
Wrap
Text File
|
1997-07-16
|
29KB
|
664 lines
StrongBS v1.75 (17th July 1997)
© Mohsen Alshayef 1993-1997
email: mohsen@qatar.net.qa
This file describes the changes and history of StrongBS:
The list is in reverse chronological order.
Version 1.75 (17th July 1997)
============================
- This version cures a very nasty bug that existed in versions 1.72 to 1.74
some of the code got corrupt when compressing the files ...oops sorry.
- A bug is identified in the "Evaluate Expression" option which is not fixed
yet.. I'll do that hopefully very soon... for the time being just switch off
that option.... see you soon with v1.76.. :-)
Version 1.74 (12th July 1997)
============================
- Bug fix in the memory indirection operator code. Thanks to Theo Markettos
for reporting it.
- Bug fix in the numbers evaluation code. Thanks to Birger Harzenetter for
pointing it out.
Version 1.73 (9th July 1997)
============================
- Fixed a bug in the spaces removal code inside DATA lines. Thanks Dominic!!
- StrongBS now understands **some** new assembler instructions (these are
SWP, MSR, MRS, LDRH, LDRSH, LDRSB and STRH) and will be treated correctly
by the spaces removal code. This new feature is enabled from the Choices
dialog box.
- Added an option in the Choices dialog box to enable recognition of new
ARM instructions. Enable this option only if you are **SURE** that your
assembler listing contains extended instructions.
-
Version 1.72 (7th July 1997)
============================
- The Removed unused assembler labels are now easily identifiable in the Log
file.
- Added the option to save output file as an "Absolute" type only.
- Added the option to save output file as "Absolute+Crunched".
- Added the option to preserve command parameters when saving in either
Absolute or Absolute+Crunched.
- Removed the option to save as StrongBS squeezed, the Crunch code by Bernard
Jungen does a better job.
- Bug in the VDU concatenation code fixed.
Version 1.71 (7th July 1997)
============================
- Bug fix in the numbers conversion routine.
- Bug fix in the "assemble code" option, that requires either an ALIGN to
be inserted or the instruction mnemonic to be left as is, I opted for the
second choice!! Thanks Sophie, I didn't take your warning seriously, I
guess I should have..:-)
Version 1.70ß2 (6th July 1997)
=============================
- Corrected the position of pop-up menus.
- Auto free memory, now works when the save button is pressed.
- Pop-up menus open with Select click and made as close as possible to
the requirements of the Style Guide :-)
Version 1.70ß1 (5th July 1997)
=============================
- If StrongBS startup banner irritates you then you can now disable
it :-) See the !Run file for more details.
- To allow more flexibility and the ability of adding more features, the
"SBSLock" file is now renamed "SBSMake" file. Sorry, please rename your
files if you have already used the "SBSLock" name :-(
New features of the SBSMake file:
- Contains any variables or procedure names not to be renamed using
the "Lock:" token (as before). And is hence compatible with the
old format of the "SBSLock" Special file.
- New token "SBSLinkDir:" points at a directory pathname for which
ALL BASIC files will be linked (appended) to the main program at
load time.
Note that any files selected in the "Library files" menu will also
be linked in addition to those linked from the library pointed by
the "SBSLinkDir:" token.
- New token "SBSLinkFile:" after which you can list all filenames that
you want to be linked to the current file.
Note: you can use <Obey$Dir> in the filename or directory name, in
this case StrongBS evaluates the <Obey$Dir> variable to mean
the directory you loaded the BASIC program from.
- New token "SBSRemoveLIBCall:" which takes a value of "Yes" to tell StrongBS
to remove all LIBRARY calls made in the main program.
- More tokens are being worked on, so I would like to receive any
suggestions.
- Code added to automatically scan for LIBRARY calls in the program and
remove them. This code gets used if the user requests that in the "SBSMake"
file or specifies that as a default in the Choices window.
- Added the ability to free the memory claimed by "StrongBS" for the loaded
file and its variables table. Also the ability to free memory automatically
as soon as the squashed file is saved, this auto-free memory can be
set from the "Choices.." window. You should save your squashed file before
freeing memory else you will lose it!!
- The default startup Squash mode can now be selected from the Choices window
and saved.
- New banner designed..!
- Error message windows improved. Still some work required, well maybe a
complete re-design !!
- Bug fixes:
- A bug with conversion of memory operators now fixed. Thanks to Bernard
Veasey for pointing this out.
- A nasty bug with *Commands have been fixed. Thanks to Matt Rix for spotting
it.
- A bug with VDU concatenation fixed. Again thanks to Matt Rix for reporting
it.
- A bug that caused the TOP token to be confused for a TO token in SYS
statements is now fixed. So things like:
SYS "My_SWI",TOP,TOP+1000 TO A% was giving problems. Now, nor more.
Thanks to Cy J. Booker for reminding me of this problem, something he had
with his excellent BasCompress application.
The similar bug in the FOR..TO loops is not fixed yet, so something like
FOR A=TOP TO HIMEM will get wrongly evaluated... In fact this is easier
to fix and I'll get that fixed soon.
Version 1.69 (28th June 1997)
=============================
- StrongBS will automatically load the Special text file named "SBSLock"
from the directory containing the core BASIC program, so you can now
write a Special file for each program, name it "SBSLock" and place it
in the same directory as your main program.
- Added the Choices window to enable different configurations to be set and
saved. Not many choices yet!
- The "Assemble into Code" can now assemble all instructions recognised by
the BASIC assembler. StrongBS also makes allowance for bugs in the
BASIC assembler.
- It seems that the BASIC interpreter doesn't like to see a string
containing the ASCII character 139 in a single line IF..THEN..ELSE
statements before the ELSE part, as this confuses the interpreter
thinking that the character is the ELSE token. The interpreter search
for the ELSE token doesn't take into consideration that this could
be a character inside a string. StrongBS now will not generate strings
with the ASCII 139 character in an IF...THEN..ELSE statement, so
as to make the interpret happy!!
- The assembler option to remove zero offsets now makes allowance for the
BASIC assembler bug that requires a zero offset be specified in LDRT and
STRT instructions.
- A bug in the variables replacer code that caused the TOP token to be
misinterpreted is now fixed.
- Many improvements have been incorporated to enable StrongBS to cope with
compressed BASIC programs. This gives more flexibility for the user to
re-squash BASIC programs which have been squashed by StrongBS or by other
BASIC squasher.
Version 1.68 (25th June 1997)
=============================
- Added the "Assemble into Code" option. This option is partially written
and few instructions are still not yet assembled. The option is
not selected by default.
- When reverting back to BASIC filetype after failure to squeeze into
Absolute, the filetype was left at "Absolute". This is now corrected.
- StrongBS can now cope with matrix operations and matrix operators don't
get wrongly evaluated and brackets around them removed.
- Fixed a bug in the real array variables renaming code that caused the
BY( in DRAW, MOVE, etc statements to be interpreted as a real array variable.
Thanks to Reuben Thomas for all his assistance in tracking down this bug.
- Fixed a bug that caused the ON token in a MOUSE ON statement to be skipped
if located inside an IF..ENDIF construct.
- Updates and corrections to the interactive help display messages.
- Fixed a bug in the numbers converter that caused shifted numbers
following the & directive to be mis-interpreted.
- PRINT concatenation code improved to deal with squashed programs.
- Various routines improved to cope with squashed BASIC programs.
Version 1.67 (23rd June 1997)
=============================
- The output filetype is now selectable from a separate pop-up menu.
- The information message displayed during squashing is now disabled as
the icon is now used to display the output filetype and format. This
maybe re-enabled in future versions using a separate configured window!
- Interactive help improved with all icons and menu entries giving detailed
help information. Use this feature for a detailed explanation of each
menu entry and each StrongBS squash option.
- Fixed a bug in the "Assembler directives code" that caused necessary
colons to be skipped after a fractional number inside an EQUD directive.
- Dropping back a StrongBS squashed output file back into StrongBS is no
longer allowed. To re-squash, hit the "Squash" button again. Re-squashing
is allowed, only if, the "output as" file selected is BASIC.
- Slight correction to the main sprite icon.
- Bug fix in the assembler directives and spaces removal codes not liking
each others results !!
- Renamed the <StrongBS$Append> variable to <StrongBSLibrary>. Also renamed
the "Append file" sub-menu to "Library files". This will list all
library files pointed by the StrongBS$Library variable, which is set to
point at the directory "Library" within StrongBS. This can be changed in
the !Run file to point at any pathname (directory) containing library
files.
- Improved the number conversion code.
- Updated some parts of the manual.
- A bug fix in shading of menu items (desktop front end).
- A bug in the "unused variables removal" that left commas after removing an
unused_var after a SYS..TO.. has now been removed. Thanks to Theo Markettos
for pointing this out.
- A nasty bug that caused PROCedure names after a Hex number to be skipped
unnoticed is now fixed. (Whoops!!)
Version 1.66ß2 (21st June 1997)
===============================
- 0's to FALSE conversion will, now, not convert those 0's inside assembler
listings (some Extended BASIC assemblers cannot cope with them). Also,
0's inside VDU statements will not be converted.
- Improved the PRINT statement concatenation code and fixed problems with
concatenating string found between two PRINT statements.
- A bug that caused ALIGN directives to be skipped following other directives
is now corrected. Thanks to Alex Thoukydides for spotting this.
- Correction to the VDU concatenation behaviour with "|" characters has been
added so that extra VDU statements are not concatenated to a statement
ending with "|".
- Fixed a problem with converting numbers to shortest form that caused very
large floating point numbers to mis-interpreted this only caused problems
with BASIC 64.
- Improved assembler register code conversion for faster processing.
Version 1.66ß1 (21st June 1997)
=============================
- Fixed a bug in the memory spaces conversion code for complex IF, WHILE
statements.
Version 1.65 (20th June 1997)
=============================
- Fixed a bug that caused the "Remove Colon" option to remove a space found
after an IF or WHILE. Example: "IF|WHILE <var1> <var2>=<var3>".
- Improved the the memory operator options code.
- Fixed a bug that caused numbers after an IF token to be converted into the
shortest form using shift format.
example: IF A%=&80000000 THEN A%=2
was converted into: IF A%=1<<31 THEN A%=2
This would be treated by BASIC as IF (A%=1)<<31 THEN A%=2
The same applies to numbers after a WHILE token.
- Fixed a bug that caused a space or a THEN token to be removed between a
hex number and available starting with a valid hex digit.
- Improved the spaces removal code and the THEN removal code.
- Added the option to convert *FX commands into OS_Byte (SYS 6) calls. The
option is not automatically selected by default.
- Up to 64 files can now be listed in the "Append" file menu.
Version 1.64 (19th June 1997)
=============================
- Fixed a bug that caused &8C inside quotes!! to be interpreted as a THEN token
- Fixed a bug that caused LOCAL DATA and LOCAL ERROR to be concatenated along
with LOCAL <var> lines and statements. Whoops!! Thanks to Rouben Thomas for
spotting this bug (that was a quick one, and hope a quick fix!!)
Version 1.63 (17th June 1997)
=============================
- Bug in the "0 to FALSE" converter removed which caused 0's in *Commands
to be converted. Thanks to Dominic Plunkett for spotting it out just
too fast for me to celebrate a bug-free StrongBS !!
- Updated the "Manual" document. Still needs lots of updates and grammar
checking !!
- Improved the PRINT statements concatenation code. Again, thanks go to
Dominic Plunkett for pointing out areas where improvement have been
made.
- A little bug in the module caused DATA statements to be skipped unnoticed,
this is now fixed. Thanks Dominic for pointing that out. BASICTools module
now at version 1.05 (thats already 5 years since the first module!! time
flies!!).
- The Help system has now be enabled again specially for the menu system.
Added various help data for all options.
Version 1.62ß (27th April 1997)
==============================
- First ßeta public release.
- Slight correction made to the "convert to FALSE" code.
Version 1.61 (20th April 1997)
==============================
- The assembler register list squash option enabled. Was greyed out. The code
to squash LDM and STM register lists is added.
- Added an option to keep REM lines starting with a word or chars specified
by the user. Suggested by Graham Crow.
- Moved the REMarks options from the "Misc" sub-menu into a separate top-level
sub-menu.
- Added the zero removal option to the "Remove" menu. This will remove all
unnecessary +0, -0, +0.0 or -0.0 in mathematical assignments.
- Added the option to convert CASE...ENDCASE constructs to IF...ENDIF
constructs. The IF...ENDIF is much faster.
- Added the "Structures" sub-menu (CASE, WHILE and IF structures' options).
- Added the "Faster" sub-menu to include all options that can speed up
program execution, but not necessarily resulting in a smaller size.
- Added an option to rename variables found in DATA lines, providing the
variable name can also be located in the main program. This option is
normally non-selected by default. Use it if DATA lines contain variables
that will be later EVALuated using the EVAL or READ statements. Previous
versions of StrongBS automatically renamed variables found in DATA lines.
This had caused a problem with one program I know of "The Acorn !Maestro
!Runimage file", as it had DATA lines containing strings of text that were
not inside quotes and were similar to some of the variables in the main
program. This caused the text in the DATA lines to be renamed along with the
similar variables in the main program!
- A bug in the empty structures removal code, removed. Now can recognize some
undocumented BASIC methods for terminating a CASE construct.
- Improved the mathematical evaluations code to cope with more expressions.
- A bug in the spaces stripper code which caused "No such function/procedure"
now removed.
- Slight front end program re-structuring.
- Added the Log file sub-menu and additional icons for the log file.
- The "Attach files" sub-menu renamed to "Insert REMarks file" and moved to the
"Remarks" sub-menu. Also the "Attach" directory is now called "REMInsert".
- Slight updates and changes to the manual.
Version 1.60 (18th April 1997)
==============================
- Improved the -1 to TRUE converter code, now more squashing achieved.
- Bug in the colons remover code removed.
- Slight improvement in the brackets removal code.
- When re-squashing a file with locked variables, the locked variables are now
remembered from the first pass.
- The variables removal code improved to cope with highly compressed files. This
allows effective re-squashing of files.
- Bug in the registers converter removed. Thanks to Dominic Plunkett for
pointing it out.
- PRINT statement concatenation option added to the "Concatenations" sub-menu.
Idea by Dominic Plunkett.
- Memory management changed. Now using the wimp for memory allocation. This
allows large compressed files above 400 Kb to be loaded and re-squashed again.
- A bug in the Attach file menu causing the last file to be displayed twice is
now removed.
- Main window icons slightly changed to comply with Acorn style guidelines.
Version 1.59 (17th April 1997)
==============================
- Now standing at 62 total options (including 3rd party options) !!!!
- Added the Empty WHILE structures removal option.
- Added the Empty procedure removal option.
- Slight improvement to the spaces stripper code.
- Some improvement to the colon stripper code. Now can cope with very
difficult unnecessary colons. More squashing...
- Improved error reporting in case of StrongBS crash!! Has it ever crashed? No,
of course not, it is RISC OS that is buggy, StrongBS is of course bug free.
Acorn should correct the OS to make it compatible with StrongBS !!!
- Improved sprite sent in by David Sharp.
- The Log menu is greyed out. It will be enabled when cross-referencing code
is completed.
- The "Clear all options" menu entry moved to the "Squash mode" menu.
- Updated the "Messages" file.
- Creating and saving a new squash mode will, now, take the 3rd party squash
options into considerations and save them as well.
- The "Create New Mode" dialog box now uses standard font for RISC OS 3.5 and
later.
- The "Squahsed by StrongBS xxxx" REMark line will not be inserted into the
output file if the result file is going to be squeezed into an absolute file
type (&FF8), even if the "Insert Squash info" option is selected by the
user.
- The location of the Append, Attach and Modes sub-directories is set using
a system variable in the !Run file, so this can be changed to re-locate
the directories.
- The Template and Messages files moved to a sub-directory "UK" within the
the "Resources" directory and a variable StrongBS$Country in the !Run
file is set to point at that directory. For other languages and countries
you need to create a sub-directory with the language name and change
the "Messages" and Templates files in it, then change the StrongBS$Country
variable in the !Run file.
Looking for someone to make a Dutch and German versions of StrongBS.
- A bug in the re-squashing loop removed.
Version 1.58 (11th April 1997)
==============================
- Now you can re-squash by pressing the "Squashed" button again. You can
do this as many times as you like to perform multi-squashing. The old
method of dropping the BASIC file back into StrongBS is still valid
as an alternative.
- Some internal codes made recursive so that the need for re-squashing is
now reduced.
- A bug pointed by David Sharp in the "Colons remover" code removed.
- The error reporting window now accepts the RETURN key.
- More 3rdParty options. Another one from David Sharp.
- Added the "Empty IF structure" removal option. Idea by Dominic Plunkett.
- Colon remover code further improved.
- Added the "Empty CASE structure" removal option.
- CallASWI module removed. Not required any more!
- Under RISC OS 3.5 and later, the main window background and fonts now use
the desktop texture and desktop fonts, a new template is designed for
this purpose. For RISC OS 3.10, a custom background and fonts
are used (template "Templ310" used). Suggested by Andrew Ayre.
- Very much improved colon remover code to remove all unnecessary colons part
of the WHILE and IF constructs.
- A bug in the spaces-stripper code removed.
- Bracket removal code improved to cope with shifted operators such << and
>>> as BASIC does not allow the use of more that one group 5 operator
by unbrackted expression.
- Improved the variables search to look inside DATA lines for matching
variables. BASIC allows variables inside DATA lines, and the READ statement
performs an automatic evaluation of the variables inside DATA lines!!
- Updated BASICTools Module to version 1.04. Slight changes to BASIC
program initialization code.
Version 1.57 (9th April 1997)
==============================
- Added the VDU statements concatenation option. Idea by Dominic Plunkett.
- Added the READ statements concatenation option.
- A bug removed that caused some of the debugging code to be left over
causing some characters to be printed on the desktop.
- Multi-tasking improved to allow StrongBS main window to be moved around
the screen while squashing is in progress.
- Acorn "CallASWI" module is automatically loaded and copied to the
!System.Modules directory for pre-RISC OS 3.7 machines.
This module will be required if the BASIC program is
further squeezed into an application and distributed as such.
- Code for brackets removal improved. Some ideas by Dominic Plunkett
implemented. Still some room for improvement.
- 3rd Party information window added.
- Manual updated.
- Little bug with the 3rd party options menu selected corrected. Thanks
to David Sharp for pointing that out.
- Little bug in the Template file corrected. Again thanks to David Sharp
for the observation.
- Improved the colon remover code to deal with colons after WHILE. Now
even more code squeezing!
- First 3rd party code written by David Sharp included with this version.
- Display time for the banner window is now correct at 5 seconds.
Version 1.56a (7th April 1997)
=============================
- This version has an improved error reporting for errors encountered in
the source BASIC program. Version is only sent to Dominic Plunkett for
the testing of an error he is encountering with ELSE statements.
Version 1.55 Beta (27 March 1997)
=================================
- Added interactive help support.
- Simple multi-tasking introduced to allow other desktop tasks to be used.
Suggested by David Sharp.
- "Make Application" code added including the facility to squeezing the code
using an LZW compression method.
- The user is alerted if overwriting an existing file.
- The "THEN Removal" code improved to cope with very obscure situations.
- Bug corrected in the SPC code.
- Description of the Squash options written partially, to be completed.
- Disabled warning for RESTORE+<No. offset>
Version 1.54 (17 March 1997)
============================
- Bug fix:
A little bug in the numbers converter with complex shifted number.
- More compression achieved by improving the scan routine inside DATA lines.
- Tested on a Risc PC and working fine.
- Re-coded the menu display routine so that if the menu is opened on the icon
bar, it will always appear in the same place (centred on top of the icon)
irrespective of the pointer x-position when the menu button is clicked.
- StrongBS will now warn the user if a Special file is needed before compression
starts rather at time of loading the source file.
- Added a little icon to show status of Special File. (A nice idea from David
Sharp).
- Added 2 more warning messages to inform the user of how to load the Special
file, i.e. after loading the BASIC source file but before compressing.
- The banner screen will automatically disappear after 4 seconds on start-up of
the program. (Thanks to David Sharp for the suggestion).
- Improved brackets removal code to achieve better compression results.
- Improved the Directives concatenation routine to cope with wider range of
assembler directive situations.
- Improved warning error window. Original template designed by "David Sharp",
slight changes by myself.
- Added an option to allow the "REM Squashed by StrongBS .." to be excluded from
the output file.
Version 1.53 (14 March 1997)
============================
- Bug fix:
Fixed a bug that caused a colon to be omitted after a DCD during conversion
to &, if the DCD failed to convert.
- Bug fix:
A bug fix in the colon remover code. Was used to corrupt the program. It will
only appear if the "Remove colons" is the only option selected.
Version 1.52 (8 March 1997)
============================
- Locked function and procedure names can be given as FN or PROC. There is no
need to use DEFFN or DEFPROC.
- The Squash mode is now configurable in the Messages file. Your preferred mode,
whether a user mode that you have defined and saved earlier or a mode that
is built into StrongBS, can now be automatically loaded and set on startup.
To set the preferred mode, change the value after the "SquashMode" token in
the Messages file.
- Locked variables can be passed in a text file. The first word of the file
should be "LOCK:" this is an identifier.
Variables can be put on newline each or separated by commas.
If locked variables also exist in the main program (i.e. after REM LOCK) then
the variables in the text file are added to those.
Note: The locked variables file should be loaded AFTER the program to be
compressed is loaded. Loading a new program will reset all locked
variables that were loaded by the lock file.
- Added the automatic line numbering option.
- Improvement to the numbers conversion to recognise more number formats.
- Improvement to the string conversions to cope with more string formats.
- Added the option to use the standard system font or any other font the user
may elect to choose.
- Added the unused variables removal code.
- Bug fix:
A bug that caused a colon to be removed after RESTORE ERROR is removed.
- The variables indexer now improved, so that all variables inside an assembly
listing are also counted in the table.
- Updated the coding of the Locked variables file, so that more keywords can be
added in the future.
- Re-written the memory management for better space allocation.
- Menus are now displayed in the default desktop font. User can specify the
font in the messages file if he wishes. This is handy for RISC OS 3.1 users.
- The colons remover code improved to deal with more situations.
Version 1.51b (4 March 1997)
============================
- Added the option to append files to the end of the main program before
compression starts. This feature helps to append LIBRARY files.
- Added the option to attach (insert) a file at the start of the main program
after compression is complete.
- Added two options, one to keep the first REM line in the source program and
another to keep all REM lines appearing at the start of the source program.
- Added and activated the option to concatenate assembler directives.
- The shorter directives improved to cope with variable names that are similar
to directive names.
- Numbers converter code improved to cope with the short directive "&" following
a label.
Version 1.49b (27 Feb 1997)
===========================
- Added the "SYS Remover code" to remove excess commas and 0's in SYS calls.
- Added the routine to convert all assembler directives (EQUS/EQUD/EQUB) and
(DCD/DCB) into the shorter type & and = directives.
- Added and activated the "Debug Code Remover". Any lines bracketed between
REM --[ and REM ]-- in the program will be removed.
- Added and activated an option to remove all those unnecessary ALIGN directives.
ALIGN directives are not required if they are followed by an instruction
opcode. BASIC automatically ensures that an instruction is stored in a
word align memory address.
Version 1.48b (26 Feb 1997)
===========================
- The variable menu width works correctly now. Obtaining the outline font text
width is now correct. Menus will automatically adjust to highest width.
Thanks to Alan Wrigley for his tip on using "Font_ConverttoOS".
- The progress bar color is user defined. The token "BarColor" in the Messages
file can be changed by the user. (Thanks to David Sharp for the idea)
Version 1.47 (21 Feb 1997)
==========================
- Added the Message file. All menu entries are now contained in the messages
file.
Version 1.46 (19 Feb 1997)
==========================
- Added the modes creation facility.
••••••••• Hope you find StrongBS useful •••••••••
StrongBS © Mohsen Alshayef 1993-1997
Contact details:
----------------
Mohsen Alshayef,
email: mohsen@qatar.net.qa